<template>
    <div></div>
</template>

<script>
    import {baseUrl} from '../config';
    import API from '../request/api';

    export default {
        name: 'welcome',
        data() {
            return {
                system: '', // 系统号
                refer: {}, // 推荐人信息
                isHave: false // 系统号本地存在，且把token取出来赋值
                // dateNow: 0 // 当前时间戳
            };
        },
        computed: {},
        watch: {
            // 监听具体数据变化，并做相应的处理
        },
        methods: {
            methCheck(state) {
                let query = this.$route.query;
                //token,存储
                if (state === 0) {
                    // 后台返回的token
                    this.$store.commit('setToken', query.token);
                    this.$store.commit('setTokenType', query.token_type || '2');
                    if (query.token_type == '1' && this.system != 9999) {
                        //1.正式 2.临时
                        this.request.get(API.getUserInfo).then(res => {
                            this.$store.commit('setUserInfo', res);
                            //    新的系统信息,存储到tokenArray
                            let tokenArray = JSON.parse(
                                localStorage.getItem('tokenArray')
                            );
                            if (tokenArray) {
                                tokenArray[this.system] = {
                                    token: query.token,
                                    userInfo: res
                                };
                                this.$store.commit('setTokenArray', tokenArray);
                            } else {
                                let tokenArrayFirst = {};
                                tokenArrayFirst[this.system] = {
                                    token: query.token,
                                    userInfo: res
                                };
                                this.$store.commit(
                                    'setTokenArray',
                                    tokenArrayFirst
                                );
                            }
                        });
                    } else if (query.token_type == '2') {
                        //    2.临时
                        //    把本地userinfo清空，因为他要去首页啊。
                        this.$store.commit('setUserInfo', {});
                    }
                } else if (state === 1) {
                    // 本地存在的token
                    let tokenArray = JSON.parse(localStorage.getItem('tokenArray'));
                    this.$store.commit('setToken', tokenArray[this.system].token);
                    this.$store.commit('setTokenType', '1'); // 正式token
                    // alert(tokenArray[this.system].token);
                    if (this.system != 9999) {
                        this.request
                            .get(API.referUp, {
                                referrer: this.refer.referid,
                                system: this.system
                            })
                            .then(res => {
                                this.request.get(API.islogin).then(res => {
                                    if (res.islogin == 1) {
                                        this.request
                                            .get(API.getUserInfo)
                                            .then(res => {
                                                this.$store.commit(
                                                    'setUserInfo',
                                                    res
                                                );
                                                // 把system对应的名称logo传出来
                                                this.request.get(API.message, {system: this.system}).then(res => {
                                                    this.$store.commit('setSystemData', res);
                                                    document.title = res.name;
                                                    if (this.$store.state.user.way == 'app') {
                                                        // 扫app进入且注册
                                                        this.$router.replace('app-code2');
                                                    }
                                                });
                                            });
                                    }
                                });
                            })
                            .catch(err => {
                            });
                    }
                    // this.$store.commit('setUserInfo', tokenArray[this.system].userInfo || {});
                    // this.$store.commit('setTokenType', tokenArray[this.system].token_type || 2);
                }
                if (this.system !== 9999) {
                    //  提交后台推荐人信息
                    this.request
                        .get(API.referUp, {
                            referrer: this.refer.referid,
                            system: this.system
                        })
                        .then(res => {
                        });
                }
                // 把system对应的名称logo传出来
                this.request.get(API.message, {system: this.system}).then(res => {
                    this.$store.commit('setSystemData', res);
                    document.title = res.name;
                });
                // 再搞一次主色
                // this.changeTheme(this.system); // 切换样式方法
                // 外层动画关闭
                // document.getElementById('img').style.display = 'none';
                // 跳转目标路由
                this.changeTheme(this.system);
                if (this.system == 9999) {
                    // 9999 聚合系统 目标poly-login或poly-account
                    //临时token跳登录页，正式跳数据页 1正式 2临时
                    let routerName =
                        query.token_type == '2' ? 'poly-login' : 'poly-account';
                    this.$router.push({
                        name: routerName
                    });
                } else if (this.system == 9998) {
                    // 9998 系统列表页 目标all-sys
                    this.$router.push({
                        name: 'all-sys'
                    });
                } else if (query.page == 'group-detail') {
                    // 拼团详情
                    this.$router.push({
                        name: 'group-detail',
                        query: {
                            gid: query.gid,
                            groupid: query.groupid
                        }
                    });
                } else if (query.page == 'online-detail') {
                    // 普通商品详情
                    this.$router.push({
                        name: 'online-detail',
                        query: {
                            gid: query.gid,
                            share: query.share
                        }
                    });
                } else if (query.page == 'lottery') {
                    // 转盘抽奖
                    this.$router.push({
                        name: 'lottery',
                    });
                } else {
                    //普通系统 目标front
                    this.$router.push({
                        name: 'front'
                    });

                }
            },
            //根据聚合帐号查询默认系统和推荐人
            getPolySystem(aid) {
                return this.request
                    .get(API.getDefaultBrand, {aid: aid})
                    .then(res => {
                        this.system = res.system;
                        this.refer.referid = res.uid; // 推荐人id
                        this.refer.refername = res.nickname; // 推荐人id
                        //    把当前系统号和推荐人存储到本地
                        this.$store.commit('setSystem', this.system);
                        this.$store.commit('refer', this.refer);
                        this.$router.push({
                            name: 'welcome',
                            query: {
                                system: this.system,
                                referid: this.refer.referid
                            }
                        });
                    })
                    .catch(err => {
                        this.$toast.fail(err);
                    });
            },
            changeTheme(systemId) {
                if (typeof systemId !== 'string') {
                    systemId = systemId.toString();
                }
                var themeMap = {
                    //爱润妍
                    10: {
                        main: '#bf2071',
                        sec: '#28163D',
                        third: '#5A124A',
                        tabIcon: '#fff'
                    },
                    //倩妆
                    20: {
                        main: '#b62b2e',
                        sec: '#fff',
                        third: '#b62b2e',
                        tabIcon: '#666'
                    },
                    //母婴
                    30: {
                        main: '#66843F',
                        sec: '#fff',
                        third: '#66843F',
                        tabIcon: '#666'
                    },
                    //聚合
                    99: {
                        main: '#bf2071',
                        sec: '#28163D',
                        third: '#5A124A',
                        tabIcon: '#fff'
                    }
                };

                // 读取数据
                // const rootStyles = getComputedStyle(document.documentElement);
                // const varValue = rootStyles.getPropertyValue('--MAIN-COLOR').trim();

                // 根据系统号切换主题色

                let themeId = systemId.toString().charAt(0) + systemId.toString().charAt(1);
                if (themeMap[themeId || 10].main) {
                    document.documentElement.style.setProperty('--MAIN-COLOR', themeMap[themeId || 10].main);
                    document.documentElement.style.setProperty('--SEC-COLOR', themeMap[themeId || 10].sec);
                    document.documentElement.style.setProperty('--THR-COLOR', themeMap[themeId || 10].third);
                    document.documentElement.style.setProperty('--TAB-ICON-COLOR', themeMap[themeId || 10].tabIcon);
                }
            }
        },
        async mounted() {
            // alert('测试');
            let query = this.$route.query;
            // 初始化token和userinfo
            if (query.token) {
                this.$store.commit('setToken', query.token);
            } else {
                this.$store.commit('setToken', '');
            }
            this.$store.commit('setTokenType', '');
            this.$store.commit('setUserInfo', {});
            this.$store.commit('refer', {});
            console.log(query, '1111', query.way);
            if (query.way) {
                this.$store.commit('setWay', query.way); // 存储进入渠道
            } else {
                this.$store.commit('setWay', ''); // 存储进入渠道
            }
            //1. 有aid 根据aid查system和refer
            //1. 有aid 根据aid查system和refer
            if (query.aid) {
                await this.getPolySystem(query.aid);
            } else {
                //如果跳转到这个个页面
                //传过来的系统id在本地是否存在，如果存在相应的token就让他用这个token登录
                // this.$store.commit('setToken', '');
                let localSystem = JSON.parse(localStorage.getItem('system')) || ''; //缓存system
                // 查看是否携带brand,
                if (query.brand) {
                    // 查看参数中有没有系统号(system),有就用，没有查看他上次退出的存到本地的系统号，有就用，没有就为空
                    // 取出本地的brandArray对应品牌的系统号
                    let brandArray = JSON.parse(localStorage.getItem('brandArray'));
                    if (query.system) {
                        this.system = query.system;
                    } else if (brandArray && brandArray[query.brand]) {
                        if (brandArray[query.brand] != 9999) {
                            this.system = brandArray[query.brand];
                        }
                    } else {
                        this.system = ''; // 系统号
                    }
                } else {
                    this.system = query.system;
                }
                // 拼团选择登录当前品牌的哪个系统
                // 先查看是否是拼团
                if (query.page == 'group-detail') {
                    let systemBrand = query.system.substr(0, 1);
                    // 1先查看他上次进入存到本地的系统号，有就用，没有
                    let brandArray = JSON.parse(localStorage.getItem('brandArray'));
                    if (brandArray && brandArray[systemBrand]) {
                        if (brandArray[systemBrand] != 9999) {
                            this.system = brandArray[systemBrand];
                        }
                    } else if (query.system) {
                        // 2就查看参数中有没有系统号(system),有就用,没有不设置
                        this.system = query.system;
                    }
                }

                //处理refer
                //     后台返回token还是本地token，共用方法
                if (query.referid) {
                    this.refer.referid = query.referid; // 推荐人id
                    // 发请求获取推荐人的昵称
                    this.request
                        .get(API.lowInfo, {uid: this.refer.referid})
                        .then(res => {
                            this.refer.refername = decodeURI(res.nickname); // 推荐人昵称
                        });
                    this.$store.commit('refer', this.refer);
                }
                //    把当前系统号和推荐人存储到本地
                this.$store.commit('setSystem', this.system);
                if (typeof query.system == 'string') {
                    query.brand = query.system.substr(0, 1);
                } else {
                    query.brand = toString(query.system).substr(0, 1);
                }
                if (this.system != 9999 && query.page != 'group-detail') {
                    //    把当前系统存储到brandArrar
                    let brandArray = JSON.parse(localStorage.getItem('brandArray'));
                    if (brandArray) {
                        brandArray[query.brand] = this.system;
                        this.$store.commit('setBrandArray', brandArray);
                    } else {
                        let brandArrayFirst = {};
                        brandArrayFirst[query.brand] = this.system;
                        this.$store.commit('setBrandArray', brandArrayFirst);
                    }
                }
            }
            if (!query.token) {
                //不带token也就是不是从后端回来,
                // 取本地tokenArray对比下有没有对应的token
                let tokenArray = JSON.parse(localStorage.getItem('tokenArray'));
                if (tokenArray && tokenArray[this.system]) {
                    // 本地有对应系统的token
                    this.methCheck(1);
                } else {
                    // 没有就跳后台取token
                    // 本地不存在token集合，直接跳转后台获取openid
                    window.location.href = baseUrl + '/oauth';
                }
            } else if (query.token) {
                // 本地存储临时tokenarray，为了更好地利用临时token不用跳oauth
                let tokenArray = JSON.parse(localStorage.getItem('tokenArray'));
                if (tokenArray) {
                    tokenArray[this.system] = {token: query.token};
                    this.$store.commit('setTokenArray', tokenArray);
                } else {
                    let tokenArrayFirst = {};
                    tokenArrayFirst[this.system] = {token: query.token};
                    this.$store.commit('setTokenArray', tokenArrayFirst);
                }
                this.methCheck(0);
            }
            // this.changeTheme(this.system); // 切换样式方法
        }
    };
</script>

<style scoped lang="stylus" rel="stylesheet/stylus">
    .all {
        position: relative;

        .big {
            width: 100%;
            height: 100px;
        }

        .strong {
            width: 30px;
            height: 30px;
            position: absolute;
            top: 70px;
            right: 0;
        }
    }
</style>
